<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>PowerVR SDK</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<table width="100%">
  <tr>
    <td width="33%">
      <p align="left">&nbsp;<a href="http://www.imgtec.com"><img border="0" src="IMGLogo.jpg" width="200" height="30"></a></p>
    </td>
    <td width="33%">
      <p align="center"><font color="#808080" face="Arial" size="2">PowerVR Software Development Kit</a></font></p>
    </td>
    <td width="34%">
      <p align="right"><a href="http://www.powervr.com"><img border="0" src="PVRlogo.jpg" width="200" height="27"></a></p>
    </td>
  </tr>
</table>
<hr>
</head><body>
<!-- Generated by Doxygen 1.3.6 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
<h1>Material.h</h1><a href="Material_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">/******************************************************************************</span>
00002 <span class="comment"></span>
00003 <span class="comment"> @File         Material.h</span>
00004 <span class="comment"></span>
00005 <span class="comment"> @Title        A class detailing material values for meshes</span>
00006 <span class="comment"></span>
00007 <span class="comment"> @Version      </span>
00008 <span class="comment"></span>
00009 <span class="comment"> @Copyright    Copyright (C)  Imagination Technologies Limited.</span>
00010 <span class="comment"></span>
00011 <span class="comment"> @Platform     Independent - OGL/OGLES/OGLES2 Specific at the moment</span>
00012 <span class="comment"></span>
00013 <span class="comment"> @Description  A class detailing material values for meshes such as colour,</span>
00014 <span class="comment">               shader to be applied etc.</span>
00015 <span class="comment"></span>
00016 <span class="comment">******************************************************************************/</span>
00017 
00018 <span class="preprocessor">#ifndef MATERIAL_H</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define MATERIAL_H</span>
00020 <span class="preprocessor"></span>
00021 <span class="preprocessor">#include "<a class="code" href="Uniform_8h.html">Uniform.h</a>"</span>
00022 <span class="preprocessor">#include "<a class="code" href="UniformHandler_8h.html">UniformHandler.h</a>"</span>
00023 <span class="preprocessor">#include "<a class="code" href="MaterialManager_8h.html">MaterialManager.h</a>"</span>
00024 <span class="preprocessor">#include "PVRTString.h"</span>
00025 <span class="preprocessor">#include "<a class="code" href="dynamicArray_8h.html">dynamicArray.h</a>"</span>
00026 <span class="preprocessor">#include "<a class="code" href="Light_8h.html">Light.h</a>"</span>
00027 <span class="preprocessor">#include "<a class="code" href="Mesh_8h.html">Mesh.h</a>"</span>
00028 
00029 <span class="keyword">namespace </span>pvrengine
00030 {
00031 
00032     <span class="keyword">class </span>UniformHandler;   <span class="comment">// forward declaration</span>
00033 
00034     <span class="comment">/******************************************************************************</span>
00035 <span class="comment">    Enums</span>
00036 <span class="comment">    ******************************************************************************/</span>
<a name="l00037"></a><a class="code" href="namespacepvrengine.html#a96">00037</a>     <span class="keyword">enum</span> <a class="code" href="namespacepvrengine.html#a96">EDefaultMaterial</a>   
00038     {
00039         <a class="code" href="namespacepvrengine.html#a96a6">eFlat</a>=0,
00040     };
00041 
00042     <span class="comment">/*!***************************************************************************</span>
00043 <span class="comment">    * @Class Material</span>
00044 <span class="comment">    * @Brief A class detailing material values for meshes such as colour.</span>
00045 <span class="comment">    * @Description A class detailing material values for meshes such as colour.</span>
00046 <span class="comment">    *****************************************************************************/</span>
00047     <span class="keyword">class </span>Material
<a name="l00048"></a><a class="code" href="classpvrengine_1_1Material.html">00048</a>     {
00049     <span class="keyword">public</span>:
00050         <span class="comment">/*!***************************************************************************</span>
00051 <span class="comment">        @Function           Material</span>
00052 <span class="comment">        @Description        blank constructor.</span>
00053 <span class="comment">        *****************************************************************************/</span>
00054         <a class="code" href="classpvrengine_1_1Material.html#a0">Material</a>();
00055 
00056         <span class="comment">/*!***************************************************************************</span>
00057 <span class="comment">        @Function           ~Material</span>
00058 <span class="comment">        @Description        destructor.</span>
00059 <span class="comment">        *****************************************************************************/</span>
00060         <a class="code" href="classpvrengine_1_1Material.html#a1">~Material</a>(){}
00061 
00062         <span class="comment">/*!***************************************************************************</span>
<a name="l00063"></a><a class="code" href="classpvrengine_1_1Material.html#a1">00063</a> <span class="comment">        @Function           Material</span>
00064 <span class="comment">        @Input              eMat - type of default material</span>
00065 <span class="comment">        @Input              pUniformHandler - uniform handler this material uses</span>
00066 <span class="comment">        @Input              pMaterialManager - manager for this material</span>
00067 <span class="comment">        @Description        sets up a material from one of the defaults</span>
00068 <span class="comment">        *****************************************************************************/</span>
00069         <a class="code" href="classpvrengine_1_1Material.html#a0">Material</a>(EDefaultMaterial eMat,
00070             <a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a> *pUniformHandler,
00071             <a class="code" href="classpvrengine_1_1MaterialManager.html">MaterialManager</a> *pMaterialManager);
00072 
00073         <span class="comment">/*!***************************************************************************</span>
00074 <span class="comment">        @Function           Material</span>
00075 <span class="comment">        @Input              original - other material</span>
00076 <span class="comment">        @Description        copy constructor</span>
00077 <span class="comment">        *****************************************************************************/</span>
00078         <a class="code" href="classpvrengine_1_1Material.html#a0">Material</a>(<span class="keyword">const</span> <a class="code" href="classpvrengine_1_1Material.html">Material</a>&amp; original);
00079 
00080         <span class="comment">/*!***************************************************************************</span>
00081 <span class="comment">        @Function           =</span>
00082 <span class="comment">        @Input              sOtherMaterial - another material</span>
00083 <span class="comment">        @Description        assignment operator</span>
00084 <span class="comment">        *****************************************************************************/</span>
00085         <a class="code" href="classpvrengine_1_1Material.html">Material</a>&amp; <a class="code" href="classpvrengine_1_1Material.html#a4">operator=</a>(<span class="keyword">const</span> <a class="code" href="classpvrengine_1_1Material.html">Material</a>&amp; sOtherMaterial);
00086 
00087         <span class="comment">/*!***************************************************************************</span>
00088 <span class="comment">        @Function           Material</span>
00089 <span class="comment">        @Input              u32Id - identifier for material</span>
00090 <span class="comment">        @Input              strPFXFile - path of PFX for this file</span>
00091 <span class="comment">        @Input              strTexturePath - path of texture for this material</span>
00092 <span class="comment">        @Input              sSPODMaterial - material values from POD</span>
00093 <span class="comment">        @Input              pUniformHandler - uniform handler this material uses</span>
00094 <span class="comment">        @Input              pMaterialManager - manager for this material</span>
00095 <span class="comment">        @Description        sets up a material from POD/PFX values</span>
00096 <span class="comment">        *****************************************************************************/</span>
00097         <a class="code" href="classpvrengine_1_1Material.html#a0">Material</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Id,
00098             <span class="keyword">const</span> CPVRTString&amp; strPFXFile,
00099             <span class="keyword">const</span> CPVRTString&amp; strTexturePath,
00100             <span class="keyword">const</span> SPODMaterial&amp; sSPODMaterial,
00101             <a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a> *pUniformHandler,
00102             <a class="code" href="classpvrengine_1_1MaterialManager.html">MaterialManager</a> *pMaterialManager);
00103 
00104         <span class="comment">/*!***************************************************************************</span>
00105 <span class="comment">        @Function           Material</span>
00106 <span class="comment">        @Input              u32Id - identifier for material</span>
00107 <span class="comment">        @Input              strTexturePath - path of texture for this material</span>
00108 <span class="comment">        @Input              sSPODMaterial - material values from POD</span>
00109 <span class="comment">        @Input              pUniformHandler - uniform handler this material uses</span>
00110 <span class="comment">        @Input              pMaterialManager - manager for this material</span>
00111 <span class="comment">        @Description        sets up a material from a POD texture </span>
00112 <span class="comment">        *****************************************************************************/</span>
00113         <a class="code" href="classpvrengine_1_1Material.html#a0">Material</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Id,
00114         <span class="keyword">const</span> CPVRTString&amp; strTexturePath,
00115             <span class="keyword">const</span> SPODMaterial&amp; sSPODMaterial,
00116             <a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a> *pUniformHandler,
00117             <a class="code" href="classpvrengine_1_1MaterialManager.html">MaterialManager</a> *pMaterialManager);
00118 
00119         <span class="comment">/*!***************************************************************************</span>
00120 <span class="comment">        @Function           getEffectFileName</span>
00121 <span class="comment">        @Return             path to PFX file for this material</span>
00122 <span class="comment">        @Description        retrieves the path to the PFX file for this material</span>
00123 <span class="comment">        *****************************************************************************/</span>
00124         CPVRTString         <a class="code" href="classpvrengine_1_1Material.html#a7">getEffectFileName</a>() <span class="keyword">const</span>;
00125 
00126         <span class="comment">/*!***************************************************************************</span>
00127 <span class="comment">        @Function           getTextureFileName</span>
00128 <span class="comment">        @Return             path to the texture file for this material</span>
00129 <span class="comment">        @Description        retrieves the path to the texture file for this material</span>
00130 <span class="comment">        *****************************************************************************/</span>
00131         CPVRTString         <a class="code" href="classpvrengine_1_1Material.html#a8">getTextureFileName</a>() <span class="keyword">const</span>;
00132 
00133         <span class="comment">/*!***************************************************************************</span>
00134 <span class="comment">        @Function           getEffectName</span>
00135 <span class="comment">        @Return             name of the effect for this material</span>
00136 <span class="comment">        @Description        retrieves the name of the effect for this material</span>
00137 <span class="comment">        *****************************************************************************/</span>
00138         CPVRTString         <a class="code" href="classpvrengine_1_1Material.html#a9">getEffectName</a>() <span class="keyword">const</span>;
00139 
00140         <span class="comment">/*!***************************************************************************</span>
00141 <span class="comment">        @Function           getName</span>
00142 <span class="comment">        @Return             name of  this material</span>
00143 <span class="comment">        @Description        retrieves the name of this material</span>
00144 <span class="comment">        *****************************************************************************/</span>
00145         CPVRTString         <a class="code" href="classpvrengine_1_1Material.html#a10">getName</a>() <span class="keyword">const</span>;
00146 
00147         <span class="comment">/*!***************************************************************************</span>
00148 <span class="comment">        @Function           getSkinned</span>
00149 <span class="comment">        @Return             does this material use skinning</span>
00150 <span class="comment">        @Description        retrieves whether this material uses skinning or not</span>
00151 <span class="comment">        *****************************************************************************/</span>
00152         <span class="keywordtype">bool</span>                <a class="code" href="classpvrengine_1_1Material.html#a11">getSkinned</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_bSkinned;}
00153 
00154         <span class="comment">/*!***************************************************************************</span>
00155 <span class="comment">        @Function           Activate</span>
00156 <span class="comment">        @Description        Activates this material for rendering</span>
00157 <span class="comment">        *****************************************************************************/</span>
00158         <span class="keywordtype">bool</span>                <a class="code" href="classpvrengine_1_1Material.html#a12">activate</a>();
00159 
00160         <span class="comment">/*!***************************************************************************</span>
00161 <span class="comment">        @Function           Activate</span>
00162 <span class="comment">        @Description        Activates this material for rendering</span>
00163 <span class="comment">        *****************************************************************************/</span>
00164         <span class="keywordtype">bool</span>                <a class="code" href="classpvrengine_1_1Material.html#a13">activateForMesh</a>(SPODMesh* pMesh);
<a name="l00165"></a><a class="code" href="classpvrengine_1_1Material.html#a11">00165</a> 
00166         <span class="comment">/*!***************************************************************************</span>
00167 <span class="comment">        @Function           deactivateArrays</span>
00168 <span class="comment">        @Description        deactivates the arrays used to render this material</span>
00169 <span class="comment">        *****************************************************************************/</span>
00170         <span class="keywordtype">bool</span>                <a class="code" href="classpvrengine_1_1Material.html#a14">deactivateArrays</a>();
00171 
00172         <span class="comment">/*!***************************************************************************</span>
00173 <span class="comment">        @Function           Deactivate</span>
00174 <span class="comment">        @Description        Deactivates this material for rendering</span>
00175 <span class="comment">        *****************************************************************************/</span>
00176         <span class="keywordtype">void</span>                <a class="code" href="classpvrengine_1_1Material.html#a15">Deactivate</a>();
00177 
00178         <span class="comment">/*!***************************************************************************</span>
00179 <span class="comment">        @Function           setUniformHandler</span>
00180 <span class="comment">        @Input              pUniformHandler - uniform handler to be referenced by this material</span>
00181 <span class="comment">        @Description        sets the uniform handler</span>
00182 <span class="comment">        *****************************************************************************/</span>
00183         <span class="keywordtype">void</span>                <a class="code" href="classpvrengine_1_1Material.html#a16">setUniformHandler</a>(<a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a> *pUniformHandler);
00184 
00185         <span class="comment">/*!***************************************************************************</span>
00186 <span class="comment">        @Function           getUniformHandler</span>
00187 <span class="comment">        @Return             uniform handler currently referenced by this material</span>
00188 <span class="comment">        @Description        retrieves the uniform handler</span>
00189 <span class="comment">        *****************************************************************************/</span>
00190         <a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a>*     <a class="code" href="classpvrengine_1_1Material.html#a17">getUniformHandler</a>();
00191 
00192         <span class="comment">/*!***************************************************************************</span>
00193 <span class="comment">        @Function           getMeshUniforms</span>
00194 <span class="comment">        @Return             array of mesh uniforms</span>
00195 <span class="comment">        @Description        retrieves the uniforms that must be initialised per mesh</span>
00196 <span class="comment">        *****************************************************************************/</span>
00197         <a class="code" href="classdynamicArray.html">dynamicArray&lt;Uniform&gt;</a>*  <a class="code" href="classpvrengine_1_1Material.html#a18">getMeshUniforms</a>();
00198 
00199         <span class="comment">/*!***************************************************************************</span>
00200 <span class="comment">        @Function           getSkinningUniforms</span>
00201 <span class="comment">        @Return             array of skinning uniforms</span>
00202 <span class="comment">        @Description        retrieves the uniforms that are required for skinning</span>
00203 <span class="comment">        *****************************************************************************/</span>
00204         <a class="code" href="classdynamicArray.html">dynamicArray&lt;Uniform&gt;</a>*  <a class="code" href="classpvrengine_1_1Material.html#a19">getSkinningUniforms</a>();
00205 
00206         <span class="comment">/*!***************************************************************************</span>
00207 <span class="comment">        @Function           getOpacity</span>
00208 <span class="comment">        @Return             opacity value</span>
00209 <span class="comment">        @Description        retrieves the opacity setting for this material</span>
00210 <span class="comment">        *****************************************************************************/</span>
00211         VERTTYPE            <a class="code" href="classpvrengine_1_1Material.html#a20">getOpacity</a>(){<span class="keywordflow">return</span> m_sPODMaterial.fMatOpacity;}
00212 
00213         <span class="comment">/*!***************************************************************************</span>
00214 <span class="comment">        @Function           getAmbient</span>
00215 <span class="comment">        @Return             Ambient value</span>
00216 <span class="comment">        @Description        retrieves the ambient colour setting for this material</span>
00217 <span class="comment">        *****************************************************************************/</span>
00218         PVRTVec3            <a class="code" href="classpvrengine_1_1Material.html#a21">getAmbient</a>(){<span class="keywordflow">return</span> m_sPODMaterial.pfMatAmbient;}
00219 
00220         <span class="comment">/*!***************************************************************************</span>
00221 <span class="comment">        @Function           getDiffuse</span>
00222 <span class="comment">        @Return             Diffuse value</span>
00223 <span class="comment">        @Description        retrieves the diffuse colour setting for this material</span>
00224 <span class="comment">        *****************************************************************************/</span>
00225         PVRTVec3            <a class="code" href="classpvrengine_1_1Material.html#a22">getDiffuse</a>(){<span class="keywordflow">return</span> m_sPODMaterial.pfMatDiffuse;}
00226 
00227         <span class="comment">/*!***************************************************************************</span>
00228 <span class="comment">        @Function           getSpecular</span>
00229 <span class="comment">        @Return             Specular value</span>
00230 <span class="comment">        @Description        retrieves the specular colour setting for this material</span>
00231 <span class="comment">        *****************************************************************************/</span>
00232         PVRTVec3            <a class="code" href="classpvrengine_1_1Material.html#a23">getSpecular</a>(){<span class="keywordflow">return</span> m_sPODMaterial.pfMatSpecular;}
<a name="l00233"></a><a class="code" href="classpvrengine_1_1Material.html#a20">00233</a> 
00234         <span class="comment">/*!***************************************************************************</span>
00235 <span class="comment">        @Function           getShininess</span>
00236 <span class="comment">        @Return             Shininess value</span>
00237 <span class="comment">        @Description        retrieves the shininess setting for this material</span>
00238 <span class="comment">        *****************************************************************************/</span>
00239         VERTTYPE            <a class="code" href="classpvrengine_1_1Material.html#a24">getShininess</a>(){<span class="keywordflow">return</span> m_sPODMaterial.fMatShininess;}
00240 
<a name="l00241"></a><a class="code" href="classpvrengine_1_1Material.html#a21">00241</a>         <span class="comment">/*!***************************************************************************</span>
00242 <span class="comment">        @Function           getBlend</span>
00243 <span class="comment">        @Return             whether this material needs blending or not</span>
00244 <span class="comment">        @Description        retrieves whether this material needs blending or not</span>
00245 <span class="comment">        *****************************************************************************/</span>
00246         <span class="keywordtype">bool</span>                <a class="code" href="classpvrengine_1_1Material.html#a25">getBlend</a>(){<span class="keywordflow">return</span> m_sPODMaterial.nFlags&amp;ePODEnableBlending;}
00247 
00248         <span class="comment">/*!***************************************************************************</span>
<a name="l00249"></a><a class="code" href="classpvrengine_1_1Material.html#a22">00249</a> <span class="comment">        @Function           Blending accessors</span>
00250 <span class="comment">        @Return             </span>
00251 <span class="comment">        @Description        </span>
00252 <span class="comment">        *****************************************************************************/</span>
00253         EPODBlendFunc       <a class="code" href="classpvrengine_1_1Material.html#a26">getBlendSrcRGB</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendSrcRGB;}
00254         EPODBlendFunc       <a class="code" href="classpvrengine_1_1Material.html#a27">getBlendSrcA</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendSrcA;}
00255         EPODBlendFunc       <a class="code" href="classpvrengine_1_1Material.html#a28">getBlendDstRGB</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendDstRGB;}
00256         EPODBlendFunc       <a class="code" href="classpvrengine_1_1Material.html#a29">getBlendDstA</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendDstA;}
<a name="l00257"></a><a class="code" href="classpvrengine_1_1Material.html#a23">00257</a>         EPODBlendOp         <a class="code" href="classpvrengine_1_1Material.html#a30">getBlendOpRGB</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendOpRGB;}
00258         EPODBlendOp         <a class="code" href="classpvrengine_1_1Material.html#a31">getBlendOpA</a>(){<span class="keywordflow">return</span> m_sPODMaterial.eBlendOpA;}
00259         PVRTVec4            <a class="code" href="classpvrengine_1_1Material.html#a32">getBlendColour</a>(){<span class="keywordflow">return</span> m_sPODMaterial.pfBlendColour;}
00260         <span class="keywordtype">void</span>                    <a class="code" href="classpvrengine_1_1Material.html#a33">getBlendInfo</a>(EPODBlendFunc&amp; eSourceRGB,
00261             EPODBlendFunc&amp; eDestRGB,
00262             EPODBlendFunc&amp; eSourceA,
00263             EPODBlendFunc&amp; eDestA,
00264             EPODBlendOp&amp; eOpRGB,
<a name="l00265"></a><a class="code" href="classpvrengine_1_1Material.html#a24">00265</a>             EPODBlendOp&amp; eOpA,
00266             PVRTVec4&amp; v4Colour);
00267 
00268         <span class="comment">/*!***************************************************************************</span>
00269 <span class="comment">        @Function           getValid</span>
00270 <span class="comment">        @Return             whether this material has initialised properly</span>
00271 <span class="comment">        @Description        retrieves whether this material has initialised properly</span>
00272 <span class="comment">        *****************************************************************************/</span>
<a name="l00273"></a><a class="code" href="classpvrengine_1_1Material.html#a25">00273</a>         <span class="keywordtype">bool</span>                    <a class="code" href="classpvrengine_1_1Material.html#a34">getValid</a>(){<span class="keywordflow">return</span> m_bValid;}
00274 
00275         <span class="comment">/*!***************************************************************************</span>
00276 <span class="comment">        @Function           getContext</span>
00277 <span class="comment">        @Return             Context for this material</span>
00278 <span class="comment">        @Description        retrieves the context for this material</span>
00279 <span class="comment">        *****************************************************************************/</span>
00280         SPVRTContext*       <a class="code" href="classpvrengine_1_1Material.html#a35">getContext</a>();
<a name="l00281"></a><a class="code" href="classpvrengine_1_1Material.html#a26">00281</a>         
<a name="l00282"></a><a class="code" href="classpvrengine_1_1Material.html#a27">00282</a>         <span class="comment">/*!***************************************************************************</span>
<a name="l00283"></a><a class="code" href="classpvrengine_1_1Material.html#a28">00283</a> <span class="comment">        @Function           getMaterialManager</span>
<a name="l00284"></a><a class="code" href="classpvrengine_1_1Material.html#a29">00284</a> <span class="comment">        @Return             manager for this material</span>
<a name="l00285"></a><a class="code" href="classpvrengine_1_1Material.html#a30">00285</a> <span class="comment">        @Description        retrieves manager for this material</span>
<a name="l00286"></a><a class="code" href="classpvrengine_1_1Material.html#a31">00286</a> <span class="comment">        *****************************************************************************/</span>
<a name="l00287"></a><a class="code" href="classpvrengine_1_1Material.html#a32">00287</a>         <a class="code" href="classpvrengine_1_1MaterialManager.html">MaterialManager</a>*        <a class="code" href="classpvrengine_1_1Material.html#a36">getMaterialManager</a>(){<span class="keywordflow">return</span> m_pMaterialManager;}
00288 
00289 
00290     <span class="keyword">private</span>:
00291         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>            m_u32Id;        
00292         <span class="keywordtype">bool</span>                    m_bValid, m_bActive, m_bSkinned;
00293         CPVRTString             m_strEffectFileName, m_strEffectName, m_strName, m_strTextureFileName;
00294         CPVRTPFXEffect          m_sEffect;              
00295         CPVRTPFXParser          m_sEffectParser;        
00296         <a class="code" href="classdynamicArray.html">dynamicArray&lt;Uniform&gt;</a>   m_daFrameUniforms,      
00297                                 m_daMaterialUniforms,   
00298                                 m_daMeshUniforms,       
00299                                 m_daSkinningUniforms,   
00300                                 m_daCustomUniforms;     
<a name="l00302"></a><a class="code" href="classpvrengine_1_1Material.html#a34">00302</a>         SPODMaterial            m_sPODMaterial;         
00303         <a class="code" href="classpvrengine_1_1UniformHandler.html">UniformHandler</a>*         m_pUniformHandler;      
00304         <a class="code" href="classpvrengine_1_1MaterialManager.html">MaterialManager</a>*        m_pMaterialManager;     
00306         <span class="comment">/*!***************************************************************************</span>
00307 <span class="comment">        @Function           Init</span>
00308 <span class="comment">        @Description        common initalisation code for constructors</span>
00309 <span class="comment">        *****************************************************************************/</span>
00310         <span class="keywordtype">void</span>        Init(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> u32Id);
00311         <span class="comment">/*!***************************************************************************</span>
00312 <span class="comment">        @Function           finishInit</span>
00313 <span class="comment">        @Description        common initalisation code for constructors</span>
00314 <span class="comment">        *****************************************************************************/</span>
00315         <span class="keywordtype">void</span>        finishInit();
00316         <span class="comment">/*!***************************************************************************</span>
00317 <span class="comment">        @Function           setAsFlat</span>
<a name="l00318"></a><a class="code" href="classpvrengine_1_1Material.html#a36">00318</a> <span class="comment">        @Description        sets this material as textured only</span>
00319 <span class="comment">        *****************************************************************************/</span>
00320         <span class="keywordtype">void</span>        setAsFlat();
00321         <span class="comment">/*!***************************************************************************</span>
00322 <span class="comment">        @Function           loadPFXShaders</span>
00323 <span class="comment">        @Input              sPODMaterial    -   POD material structure</span>
00324 <span class="comment">        @Description        loads and compiles the PFX shaders</span>
00325 <span class="comment">        *****************************************************************************/</span>
00326         <span class="keywordtype">bool</span>        loadPFXShaders();
00327         <span class="comment">/*!***************************************************************************</span>
00328 <span class="comment">        @Function           loadPODMaterialValues</span>
00329 <span class="comment">        @Input              sPODMaterial    -   POD material structure</span>
00330 <span class="comment">        @Description        initialises other material valus from the POD material</span>
00331 <span class="comment">        structure.</span>
00332 <span class="comment">        *****************************************************************************/</span>
00333         <span class="keywordtype">void</span>        loadPODMaterialValues(<span class="keyword">const</span> SPODMaterial&amp; sPODMaterial);
00334         <span class="comment">/*!***************************************************************************</span>
00335 <span class="comment">        @Function           loadPFXTextures</span>
00336 <span class="comment">        @Input              strTexturePath  -   path to textures</span>
00337 <span class="comment">        @Description        loads textures as specified by the PFX file</span>
00338 <span class="comment">        *****************************************************************************/</span>
00339         <span class="keywordtype">bool</span>        loadPFXTextures(<span class="keyword">const</span> CPVRTString&amp; strTexturePath);
00340         <span class="comment">/*!***************************************************************************</span>
00341 <span class="comment">        @Function           buildUniformLists</span>
00342 <span class="comment">        @Description        manufactures the uniform lists from the PFX file's values</span>
00343 <span class="comment">        *****************************************************************************/</span>
00344         <span class="keywordtype">bool</span>        buildUniformLists();
00345         <span class="comment">/*!***************************************************************************</span>
00346 <span class="comment">        @Function           &gt;</span>
00347 <span class="comment">        @Input              A   -   a material object</span>
00348 <span class="comment">        @Input              B   -   a material object</span>
00349 <span class="comment">        @Description        compares the identifiers of two materials so that they</span>
00350 <span class="comment">        can be sorted.</span>
00351 <span class="comment">        *****************************************************************************/</span>
00352         <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="classpvrengine_1_1Material.html#n0">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classpvrengine_1_1Material.html">Material</a>&amp; A, <span class="keyword">const</span> <a class="code" href="classpvrengine_1_1Material.html">Material</a>&amp; B)
00353         {
00354             <span class="keywordflow">return</span> (A.<a class="code" href="classpvrengine_1_1Material.html#r0">m_u32Id</a>&gt;B.<a class="code" href="classpvrengine_1_1Material.html#r0">m_u32Id</a>);
00355         }
00356 
00357     };
00358 }
00359 <span class="preprocessor">#endif // MATERIAL_H</span>
00360 <span class="preprocessor"></span>
00361 <span class="comment">/******************************************************************************</span>
00362 <span class="comment">End of file (Material.h)</span>
00363 <span class="comment">******************************************************************************/</span>
00364 
</pre></div><br>
<br>
<P align=left><FONT size=2><STRONG><A 
   href="http://www.imgtec.com/powervr/insider/legal/index.asp">Copyright</A> � 
   1999-2008, Imagination Technologies Ltd.</STRONG></FONT></P>
<hr>
<address style="align: left;"><small><FONT color=f0f>
Generated by <a href="http://www.doxygen.org/index.html">DOXYGEN</a> 1.3.6</small></address>
</body>
</html>
